import { ModalProps } from 'antd';
import type { DraggableData, DraggableEvent } from 'react-draggable';

export interface XwdModalProps extends ModalProps {
  /**
   * 是否使用原生 antd Modal 组件
   * @default false
   */
  antNative?: boolean;

  /**
   * 是否可拖动
   * @default false
   */
  draggable?: boolean;

  /**
   * 是否可调整大小
   * @default false
   */
  resizable?: boolean;

  /**
   * 是否自适应高度
   * @default false
   */
  autoHeight?: boolean;

  /**
   * 最小宽度（像素）
   * @default 520
   */
  minWidth?: number;

  /**
   * 最小高度（像素）
   * @default 200
   */
  minHeight?: number;

  /**
   * 最大宽度（像素）
   * @default window.innerWidth
   */
  maxWidth?: number;

  /**
   * 最大高度（像素）
   * @default window.innerHeight
   */
  maxHeight?: number;

  /**
   * 是否交换确定和取消按钮的位置
   * @default false
   */
  swapButtons?: boolean;

  /**
   * 拖动开始时的回调
   */
  onDragStart?: (event: DraggableEvent, data: DraggableData) => void;
}
